package com.example.myapplication.middleControls;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

import com.example.myapplication.R;

import org.w3c.dom.Text;

import java.util.Calendar;

public class DialogActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener {

    private TextView tv_alert;
    private DatePicker dp_date;
    private TextView tv_date;
    private TimePicker tp_time;
    private TextView tv_time;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        tv_alert = findViewById(R.id.alert_text);
        dp_date = findViewById(R.id.dp_date);
        tv_date = findViewById(R.id.tv_date);
        findViewById(R.id.bnt_alert).setOnClickListener(this);
        findViewById(R.id.bnt_selectDate).setOnClickListener(this);
        findViewById(R.id.bnt_selectDate2).setOnClickListener(this);
        findViewById(R.id.bnt_timePicker).setOnClickListener(this);//timePicker
        findViewById(R.id.bnt_timePickerDilog).setOnClickListener(this);//timePickerDilog
        tp_time = findViewById(R.id.tp_time);//tp_time
        tp_time.setIs24HourView(true);
        tv_time = findViewById(R.id.tv_time); //tv_time

    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.bnt_alert){
            // 创建提醒对话框的建造器
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            // 设置对话框的标题文本
            builder.setTitle("尊敬的用户");
            // 设置对话框的内容文本
            builder.setMessage("你真的要卸载我吗？");
            // 设置对话框的肯定按钮文本及其点击监听器
            builder.setPositiveButton("残忍卸载", (dialog, which) -> {
                tv_alert.setText("虽然依依不舍，但是只能离开了");
            });
            // 设置对话框的否定按钮文本及其点击监听器
            builder.setNegativeButton("我再想想", (dialog, which) -> {
                tv_alert.setText("让我再陪你三百六十五个日夜");
            });

            // 根据建造器构建提醒对话框对象
            AlertDialog dialog = builder.create();
            // 显示提醒对话框
            dialog.show();
        } else if (v.getId() == R.id.bnt_selectDate) {
            String date = String.format("日期: %d年%d月%d日", dp_date.getYear(), dp_date.getMonth() + 1, dp_date.getDayOfMonth());
            tv_date.setText(date);
        }
        else if (v.getId() == R.id.bnt_selectDate2) {
            // 获取日历的一个实例，里面包含了当前的年月日
            Calendar calendar = Calendar.getInstance();
            // 构建一个日期对话框，该对话框已经集成了日期选择器。
            // DatePickerDialog的第二个构造参数指定了日期监听器
            DatePickerDialog dialog = new DatePickerDialog(this, this,
                    calendar.get(Calendar.YEAR), // 年份
                    calendar.get(Calendar.MONTH), // 月份
                    calendar.get(Calendar.DAY_OF_MONTH)); // 日子
            dialog.show(); // 显示日期对话框
        } else if (v.getId() == R.id.bnt_timePicker) {
            String time = String.format("您选择的时间是:%d时%d分",tp_time.getHour(),tp_time.getMinute());
            tv_time.setText(time);
        } else if (v.getId() == R.id.bnt_timePickerDilog){

        }
    }

    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        // 获取日期对话框设定的年月份
        String desc = String.format("日期: %d年%d月%d日",
                year, month + 1, dayOfMonth);
        tv_date.setText(desc);
    }
}